#ifndef USER_H
#define USER_H

#include "externals/includes/ip/UdpSocket.h"
#include "externals/includes/osc/OscReceivedElements.h"
#include "externals/includes/osc/OscOutboundPacketStream.h"
#include "QString"
#include "externals/includes/osc/OscOutboundPacketStream.h"
#include "QObject"


class User : public QObject
{
    Q_OBJECT
public:
    User(QString userAddress, QString userName, QString userPassword, int userPort);
    ~User();
    //void sendUser(osc::OutboundPacketStream p);
    QString getUserName();
    QString getUserPassword();
    void setAliveTimer(int time);
    void increaseAliveTimer(int time);
    int getAliveTimer();
    bool isInitialized();
    IpEndpointName getIp();
    void changePiece(QString piece);
    QString getPiece();

private:
    UdpTransmitSocket* transmitSocket;
    QString userAddress;
    QString userName;
    QString userPassword;
    int userPort;
    int aliveTimer;
    bool initialized;
    QString currentPiece;
};

#endif // USER_H
